[INFO] fetching crate fast-grep 0.3.1...
[INFO] checking fast-grep-0.3.1 against master#c290daa1e5274a52e54a0f49e31bd70192abc606 for pr-133502-23
[INFO] extracting crate fast-grep 0.3.1 into /workspace/builds/worker-5-tc1/source
[INFO] removed /workspace/builds/worker-5-tc1/source/.cargo/config.toml
[INFO] started tweaking crates.io crate fast-grep 0.3.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate fast-grep 0.3.1
[INFO] tweaked toml for crates.io crate fast-grep 0.3.1 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate fast-grep 0.3.1 on toolchain c290daa1e5274a52e54a0f49e31bd70192abc606
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate fast-grep 0.3.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08
[INFO] running `Command { std: "docker" "start" "1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08" "/opt/rustwide/cargo-home/bin/cargo" "+c290daa1e5274a52e54a0f49e31bd70192abc606" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]     Checking clap_lex v0.6.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling clap_derive v4.4.7
[INFO] [stderr]     Checking notify-types v1.0.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking roaring v0.10.12
[INFO] [stderr]     Checking ignore v0.4.25
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking clap_builder v4.4.18
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking filetime v0.2.27
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking clap v4.4.18
[INFO] [stderr]     Checking inotify v0.10.2
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking notify v7.0.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking ctrlc v3.5.2
[INFO] [stderr]     Checking fast-grep v0.3.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]     --> src/searcher.rs:1368:21
[INFO] [stdout]      |
[INFO] [stdout] 1368 |                 use std::io::Write;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `saved`
[INFO] [stdout]    --> src/searcher.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |             let saved = chars.clone();
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_saved`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metal_literal`
[INFO] [stdout]    --> src/searcher.rs:852:21
[INFO] [stdout]     |
[INFO] [stdout] 852 |                 let metal_literal: Option<Vec<u8>> = if use_metal {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metal_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `line_at_offset` is never used
[INFO] [stdout]    --> src/searcher.rs:503:4
[INFO] [stdout]     |
[INFO] [stdout] 503 | fn line_at_offset(buf: &[u8], offset: usize) -> (usize, usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]     --> src/searcher.rs:1368:21
[INFO] [stdout]      |
[INFO] [stdout] 1368 |                 use std::io::Write;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `saved`
[INFO] [stdout]    --> src/searcher.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |             let saved = chars.clone();
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_saved`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metal_literal`
[INFO] [stdout]    --> src/searcher.rs:852:21
[INFO] [stdout]     |
[INFO] [stdout] 852 |                 let metal_literal: Option<Vec<u8>> = if use_metal {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metal_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchStats` is never constructed
[INFO] [stdout]   --> src/index.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct SearchStats {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `search`, `search_with_stats`, and `search_inner` are never used
[INFO] [stdout]    --> src/index.rs:89:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl SparseIndex {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn search(&self, pattern: &str) -> Vec<&Path> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn search_with_stats(&self, pattern: &str, verified_count: usize) -> SearchStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 114 |     fn search_inner(&self, pattern: &str) -> (Vec<&Path>, usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `covering_ngrams_ms` and `ngrams_queried` are never read
[INFO] [stdout]    --> src/persist.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub struct SearchTiming {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout]  98 |     pub covering_ngrams_ms: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub ngrams_queried: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `freq` is never read
[INFO] [stdout]    --> src/persist.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct PersistentIndex {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub freq: BigramFreq,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `search` is never used
[INFO] [stdout]    --> src/persist.rs:418:12
[INFO] [stdout]     |
[INFO] [stdout] 188 | impl PersistentIndex {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn search(&self, pattern: &str) -> Vec<&Path> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `line_at_offset` is never used
[INFO] [stdout]    --> src/searcher.rs:503:4
[INFO] [stdout]     |
[INFO] [stdout] 503 | fn line_at_offset(buf: &[u8], offset: usize) -> (usize, usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Searcher` is never constructed
[INFO] [stdout]    --> src/searcher.rs:531:12
[INFO] [stdout]     |
[INFO] [stdout] 531 | pub struct Searcher {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `search`, `search_files_only`, and `search_count` are never used
[INFO] [stdout]    --> src/searcher.rs:536:12
[INFO] [stdout]     |
[INFO] [stdout] 535 | impl Searcher {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 536 |     pub fn new(root: &Path, no_ignore: bool, type_filter: Option<&str>) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn search(&self, pattern: &str) -> Result<Vec<Match>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     pub fn search_files_only(&self, pattern: &str) -> Result<Vec<PathBuf>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 597 |     pub fn search_count(&self, pattern: &str) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_persistent` is never used
[INFO] [stdout]    --> src/searcher.rs:739:8
[INFO] [stdout]     |
[INFO] [stdout] 739 | pub fn search_persistent(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_persistent_mmap` is never used
[INFO] [stdout]     --> src/searcher.rs:1388:8
[INFO] [stdout]      |
[INFO] [stdout] 1388 | pub fn search_persistent_mmap(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `weight` is never used
[INFO] [stdout]    --> src/sparse.rs:100:12
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl BigramFreq {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn weight(&self, a: u8, b: u8) -> f32 {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ngram_score` is never used
[INFO] [stdout]    --> src/sparse.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn ngram_score(ngram: &[u8], freq: &BigramFreq) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_sparse_ngrams` is never used
[INFO] [stdout]    --> src/sparse.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn extract_sparse_ngrams(text: &[u8], freq: &BigramFreq) -> Vec<Box<[u8]>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_covering_ngrams` is never used
[INFO] [stdout]    --> src/sparse.rs:166:8
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub fn extract_covering_ngrams(text: &[u8], freq: &BigramFreq) -> Vec<Box<[u8]>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_trigrams` is never used
[INFO] [stdout]  --> src/trigram.rs:3:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn extract_trigrams(text: &str) -> HashSet<[u8; 3]> {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decompose_pattern_ordered` is never used
[INFO] [stdout]   --> src/trigram.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn decompose_pattern_ordered(pattern: &str) -> Vec<Vec<[u8; 3]>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&PathBuf` instead of cloning the inner type
[INFO] [stdout]    --> src/cli.rs:361:37
[INFO] [stdout]     |
[INFO] [stdout] 361 |         pairs.sort_by_key(|(p, _)| p.clone());
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> tests/searcher_integration.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `should_match` is never read
[INFO] [stdout]   --> tests/regex_correctness.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct RegexTest {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     should_match: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RegexTest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]     --> src/searcher.rs:1368:21
[INFO] [stdout]      |
[INFO] [stdout] 1368 |                 use std::io::Write;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `saved`
[INFO] [stdout]    --> src/searcher.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |             let saved = chars.clone();
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_saved`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metal_literal`
[INFO] [stdout]    --> src/searcher.rs:852:21
[INFO] [stdout]     |
[INFO] [stdout] 852 |                 let metal_literal: Option<Vec<u8>> = if use_metal {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metal_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `line_at_offset` is never used
[INFO] [stdout]    --> src/searcher.rs:503:4
[INFO] [stdout]     |
[INFO] [stdout] 503 | fn line_at_offset(buf: &[u8], offset: usize) -> (usize, usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Write`
[INFO] [stdout]     --> src/searcher.rs:1368:21
[INFO] [stdout]      |
[INFO] [stdout] 1368 |                 use std::io::Write;
[INFO] [stdout]      |                     ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `saved`
[INFO] [stdout]    --> src/searcher.rs:121:17
[INFO] [stdout]     |
[INFO] [stdout] 121 |             let saved = chars.clone();
[INFO] [stdout]     |                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_saved`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `metal_literal`
[INFO] [stdout]    --> src/searcher.rs:852:21
[INFO] [stdout]     |
[INFO] [stdout] 852 |                 let metal_literal: Option<Vec<u8>> = if use_metal {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_metal_literal`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `false_positive_rate` is never read
[INFO] [stdout]   --> src/index.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct SearchStats {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub false_positive_rate: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `covering_ngrams_ms` and `ngrams_queried` are never read
[INFO] [stdout]    --> src/persist.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  97 | pub struct SearchTiming {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout]  98 |     pub covering_ngrams_ms: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub ngrams_queried: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `freq` is never read
[INFO] [stdout]    --> src/persist.rs:185:9
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct PersistentIndex {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub freq: BigramFreq,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `search` is never used
[INFO] [stdout]    --> src/persist.rs:418:12
[INFO] [stdout]     |
[INFO] [stdout] 188 | impl PersistentIndex {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn search(&self, pattern: &str) -> Vec<&Path> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `line_at_offset` is never used
[INFO] [stdout]    --> src/searcher.rs:503:4
[INFO] [stdout]     |
[INFO] [stdout] 503 | fn line_at_offset(buf: &[u8], offset: usize) -> (usize, usize, usize) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Searcher` is never constructed
[INFO] [stdout]    --> src/searcher.rs:531:12
[INFO] [stdout]     |
[INFO] [stdout] 531 | pub struct Searcher {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `search`, `search_files_only`, and `search_count` are never used
[INFO] [stdout]    --> src/searcher.rs:536:12
[INFO] [stdout]     |
[INFO] [stdout] 535 | impl Searcher {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 536 |     pub fn new(root: &Path, no_ignore: bool, type_filter: Option<&str>) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn search(&self, pattern: &str) -> Result<Vec<Match>> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 574 |     pub fn search_files_only(&self, pattern: &str) -> Result<Vec<PathBuf>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 597 |     pub fn search_count(&self, pattern: &str) -> Result<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_persistent` is never used
[INFO] [stdout]    --> src/searcher.rs:739:8
[INFO] [stdout]     |
[INFO] [stdout] 739 | pub fn search_persistent(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `search_persistent_mmap` is never used
[INFO] [stdout]     --> src/searcher.rs:1388:8
[INFO] [stdout]      |
[INFO] [stdout] 1388 | pub fn search_persistent_mmap(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decompose_pattern_ordered` is never used
[INFO] [stdout]   --> src/trigram.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn decompose_pattern_ordered(pattern: &str) -> Vec<Vec<[u8; 3]>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&PathBuf` instead of cloning the inner type
[INFO] [stdout]    --> src/cli.rs:361:37
[INFO] [stdout]     |
[INFO] [stdout] 361 |         pairs.sort_by_key(|(p, _)| p.clone());
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.99s
[INFO] running `Command { std: "docker" "inspect" "1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08", kill_on_drop: false }`
[INFO] [stdout] 1a2a80d3c5a351473276f4bcbdf62a35c6fc63c5ad8097cce9a50904f58aad08
